package com.gryffonx.Objects.PlayerCharacters;

import com.gryffonx.Objects.Feats.FeatObject;
import com.gryffonx.Objects.Skills.SkillObject;


/**
 * Character object for Wizards of the Coast's Dungeons and Dragons 3rd Edition
 * Player Rules.  Also incorporates the updated 3.5 ruleset.
 *
 * @author Erik Stell
 * @version 1.0
 */
class D20CharacterObject extends DNDCharacterObject {

    private int baseAttackBonus;
    private int spellResistence;
    private int spellSave;
    private int willSave;
    private int reflexSave;
    private int fortSave;
    private int totalWeightCarried;
    private int mediumLoad;
    private int heavyLoad;
    private int liftOverHead;
    private int liftOffGround;
    private int pushOrDrag;
    private int lightLoad;
    private int grappleModifier;
    private int flatFootedAc;
    private int touchAc;
    private SkillObject[] skills; //array of skill objects
    private FeatObject[] feats; //array of feat objects
    private Object[] specialAbilities; //array of specialAbility objects


    public D20CharacterObject() {

    }

    public int getBaseAttackBonus() {
        return baseAttackBonus;
    }

    public void setBaseAttackBonus(int baseAttackBonus) {
        this.baseAttackBonus = baseAttackBonus;
    }

    public int getSpellResistence() {
        return spellResistence;
    }

    public void setSpellResistence(int spellResistence) {
        this.spellResistence = spellResistence;
    }

    public int getSpellSave() {
        return spellSave;
    }

    public void setSpellSave(int spellSave) {
        this.spellSave = spellSave;
    }

    public int getWillSave() {
        return willSave;
    }

    public void setWillSave(int willSave) {
        this.willSave = willSave;
    }

    public int getReflexSave() {
        return reflexSave;
    }

    public void setReflexSave(int reflexSave) {
        this.reflexSave = reflexSave;
    }

    public int getFortSave() {
        return fortSave;
    }

    public void setFortSave(int fortSave) {
        this.fortSave = fortSave;
    }

    public int getTotalWeightCarried() {
        return totalWeightCarried;
    }

    public void setTotalWeightCarried(int totalWeightCarried) {
        this.totalWeightCarried = totalWeightCarried;
    }

    public int getMediumLoad() {
        return mediumLoad;
    }

    public void setMediumLoad(int mediumLoad) {
        this.mediumLoad = mediumLoad;
    }

    public int getHeavyLoad() {
        return heavyLoad;
    }

    public void setHeavyLoad(int heavyLoad) {
        this.heavyLoad = heavyLoad;
    }

    public int getLiftOverHead() {
        return liftOverHead;
    }

    public void setLiftOverHead(int liftOverHead) {
        this.liftOverHead = liftOverHead;
    }

    public int getLiftOffGround() {
        return liftOffGround;
    }

    public void setLiftOffGround(int liftOffGround) {
        this.liftOffGround = liftOffGround;
    }

    public int getPushOrDrag() {
        return pushOrDrag;
    }

    public void setPushOrDrag(int pushOrDrag) {
        this.pushOrDrag = pushOrDrag;
    }

    public int getLightLoad() {
        return lightLoad;
    }

    public void setLightLoad(int lightLoad) {
        this.lightLoad = lightLoad;
    }

    public int getGrappleModifier() {
        return grappleModifier;
    }

    public void setGrappleModifier(int grappleModifier) {
        this.grappleModifier = grappleModifier;
    }

    public int getFlatFootedAc() {
        return flatFootedAc;
    }

    public void setFlatFootedAc(int flatFootedAc) {
        this.flatFootedAc = flatFootedAc;
    }

    public int getTouchAc() {
        return touchAc;
    }

    public void setTouchAc(int touchAc) {
        this.touchAc = touchAc;
    }

    public Object[] getSkills() {
        return skills;
    }

    public void setSkills(SkillObject[] skills) {
        this.skills = skills;
    }

    public Object[] getFeats() {
        return feats;
    }

    public void setFeats(FeatObject[] feats) {
        this.feats = feats;
    }

    public Object[] getSpecialAbilities() {
        return specialAbilities;
    }

    public void setSpecialAbilities(Object[] specialAbilities) {
        this.specialAbilities = specialAbilities;
    }
}
